Mi proyecto nativo de reacción funcionó bien ayer. Pero esta mañana, después de intentar ejecutarlo de nuevo, me dio el siguiente error:
error node_modules/react-native/Libraries/Components/ScrollView/ScrollView.js: Property body[41] of BlockStatement expected node to be of a type ["Statement"] but instead got "AssignmentExpression". Run CLI with --verbose flag for more details. TypeError: Property body[41] of BlockStatement expected node to be of a type ["Statement"] but instead got "AssignmentExpression"Aunque no estoy seguro de lo que significa. ¿Cómo puedo solucionar este problema?
Aparentemente, puede ser un problema con la babel. Copie la carpeta @babel (específicamente @babel/core ) que está en node_modules de un proyecto en funcionamiento en el nuevo proyecto y se ejecuta sin problemas.
Puede ser debido a una actualización que hicieron hace un par de horas.
También puede eliminar el @babel/core actual del paquete.json e instalar esta versión npm install --save-dev @babel/core@latest .
O usa esto:
@babel file : https://drive.google.com/file/d/1-z_4H_z4x075unZqZD41WYUwY_hsrKox/view .
O reemplace los siguientes códigos en su archivo package.json y luego npm install .
"@babel/core": "~7.14.0", "@babel/compat-data": "~7.14.0", "@babel/generator": "~7.14.0", "@babel/helper-compilation-targets": "~7.14.0", "@babel/helper-create-class-features-plugin": "~7.14.0", "@babel/helper-create-regexp-features-plugin": "~7.14.0", "@babel/helper-member-expression-to-functions": "~7.14.0", "@babel/helper-module-transforms": "~7.14.0", "@babel/helper-replace-supers": "~7.14.0", "@babel/plugin-transform-react-display-name": "~7.14.0", "@babel/plugin-transform-runtime": "~7.14.0", "@babel/types": "~7.14.0",copiar @babel de algún otro proyecto y pegarlo en node_modules es la única solución por ahora
Esto parece ser un error con 7.15.0 de Babel para el que están haciendo una prueba de regresión nativa E2E React .
Hace unas horas han lanzado el fix . Se debe a un cambio en@babel/plugin-transform-react-display-name que se revirtió en 7.15.1 . Con esa solución, debería poder eliminar las entradas adicionales en el paquete.json de mi respuesta original y, en su lugar, hacer lo siguiente.
npm install --save-dev @babel/core@latest
Desafortunadamente, simplemente degradar @babel/core a 7.14 no será suficiente porque parece extraer las dependencias más recientes para los otros componentes. En cambio, lo que debe hacer es bloquear @babel/core y cualquier otro componente de Babel en el que esté trabajando que esté obligando @babel/types a ir a 7.15.0
Aquí está la sección relevante que tenía en mi paquete.json
"@babel/core": "~7.14.0", "@babel/compat-data": "~7.14.0", "@babel/generator": "~7.14.0", "@babel/helper-compilation-targets": "~7.14.0", "@babel/helper-create-class-features-plugin": "~7.14.0", "@babel/helper-create-regexp-features-plugin": "~7.14.0", "@babel/helper-member-expression-to-functions": "~7.14.0", "@babel/helper-module-transforms": "~7.14.0", "@babel/helper-replace-supers": "~7.14.0", "@babel/plugin-transform-react-display-name": "~7.14.0", "@babel/plugin-transform-runtime": "~7.14.0", "@babel/types": "~7.14.0", Simplemente reemplace todo eso y realice una instalación de npm install y deje que intente resolver y probar su escenario nuevamente. Si aún falla, solo mire package-lock.json y localice 7.15.0 y ajuste la dependencia en consecuencia
Con este enfoque, no necesita "recuperarse" de un archivo zip.
Fija @babel/plugin-transform-react-display-name a 7.14.5 .
Puede hacerlo agregando esto a su paquete.json si su administrador de paquetes admite resolutions .
"resolutions": { "@babel/plugin-transform-react-display-name": "7.14.5" }Gracias a facebook/react-native#31960
el problema se debe a una actualización de babel que afectó al proyecto RN. copie @babel de algún otro proyecto y péguelo en node_modules o descargue la carpeta @babel desde aquí y reemplace la carpeta existente en node_modules. Descargar Babel
Y correr
npm start --reset-cacheMe ha surgido esto cuando cambio las ramas de git y necesito hacer una instalación de hilo. Me gusta el comentario para cambiar la versión de bable ya que también estoy en 7.15 y lo intentaré la próxima vez que ocurra...
Para evitar esto, he logrado:
mi script de limpieza
#!/bin/bash echo "clean'n android" cd ./android && ./gradlew clean cd .. rm -rf ./node_modules yarn cache clean rm ./yarn.lock rm -rf $TMPDIR/react-* rm -rf $TMPDIR/metro-builder-cache-* yarn install